package com.moliku.insurance.model.entity.sinosafe.submit;

import lombok.Data;

import java.io.Serializable;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * @author 七分
 * @version 1.0
 * @date 2021/3/22 14:12
 * @effect 华安实体
 */
@Data
public class SinosofaEntity implements Serializable {
    private static final long serialVersionUID = 4615250065666391876L;


    public static final Map<String, String> map = new HashMap<>();

    static {
        map.put("1", "01");
        map.put("3", "02");
        map.put("4", "03");
        map.put("7", "03");
        map.put("13", "04");
        map.put("12", "05");
        map.put("6", "06");
        map.put("11", "07");
        map.put("84", "09");
        map.put("99", "99");
        map.put("72", "10");
        map.put("99", "99");
    }


    private SaleInfo saleInfo;
    private Product product;
    private Policy policy;
    private Holder holder;
    private List<Insured> insureds;


    /**
     * 内部类 渠道信息
     */
    @Data
    public static class SaleInfo implements Serializable {

        private static final long serialVersionUID = 5341681952717923669L;
        /**
         * 接入用户
         */
        private String accessUser;
        /**
         * 渠道编码
         */
        private String channelCode;
        /**
         * 接入密码
         */
        private String accessPassword;
    }

    /**
     * 内部类 产品信息
     */
    @Data
    public static class Product implements Serializable {

        private static final long serialVersionUID = -9059097698432952676L;
        /**
         * 产品代码
         */
        private String productCode;
        /**
         * 套餐代码
         */
        private String packageCode;
    }

    /**
     * 内部类 投保信息
     */
    @Data
    public static class Policy implements Serializable {

        private static final long serialVersionUID = 5918869250976621188L;
        /**
         * 外部业务流水号
         */
        private String businessNo;
        /**
         * 实付总保费 分/单位
         */
        private Integer actualPremiumAmt;
        /**
         * 投保份数
         */
        private Integer insuredQuantity;
        /**
         * 原始保费
         */
        private Integer originalPremiumAmt;
        /**
         * 总保费
         */
        private Integer totalInsuredAmt;
        /**
         * 保险起始时间 yyyyMMddHHmmss
         */
        private String insuredBgnTime;
        /**
         * 保险终止时间 yyyyMMddHHmmss
         */
        private String insuredEndTime;
        /**
         * 申请时间 yyyyMMddHHmmss
         */
        private String appTime;
    }

    /**
     * 内部类 投保人
     */
    @Data
    public static class Holder implements Serializable {

        private static final long serialVersionUID = -6933221646454463372L;

        /**
         * 投保人名称
         */
        private String holderName;
        /**
         * 证件类型
         */
        private String idcartType;
        /**
         * 证件号码
         */
        private String idcartNo;
        /**
         * 投保人类型
         */
        private String holderType;

        /**
         * 生日  yyyyMMdd
         */
        private String bornDate;
        /**
         * 性别 M男 F女
         */
        private String sex;


    }

    /**
     * 内部类 被保人
     */
    @Data
    public static class Insured implements Serializable {

        private static final long serialVersionUID = -3777345488113844154L;

        /**
         * 名称
         */
        private String insuredName;
        /**
         * 证件类型
         */
        private String idcartType;
        /**
         * 证件号码
         */
        private String idcartNo;
        /**
         * 被保人类型
         */
        private String insuredType;
        /**
         * 生日
         */
        private String bornDate;
        /**
         * 性别
         */
        private String sex;
        /**
         * 与投保人关系
         */
        private String releation;


    }


}
